const router = require('koa-router')()

router.get('/', async ctx => { 
    /*
        如果在koa中设置cookie的值中含有中文,系统就会直接报错
            argument value is invalid  这个就是设置了中文的结果

        但是在cookie中中文是经常会要使用到的, 所以我们就得绕开中文,解决的方案就是
            使用buffer对象在存的时候先转码,获取的时候再进行一次解码

        原来老版本使用buffer对象使用的方法是 new Buffer('转内容').toString('转向的编码格式')
            这种版本因为安全性的等等原因,虽然还能用,但是使用的时候系统都会提示最好换最新的语法来创建

        新语法使用 
            编码
                Buffer.from('value').toString('编码格式')  在不提供编码格式的时候会默认以二进制的形式进行转码
            解码
                Buffer.from(转码的内容,'原来的编码格式').toString('转码的编码格式')
                toString()在不指定转码格式的情况下,  是会按照utf8的形式来进行转码的
    */
    let newvalue = Buffer.from('叶思豪').toString('base64')
    // let value =  new Buffer('叶思豪').toString('base64')
    // console.log(value)
    ctx.cookies.set('username', newvalue, {})

    ctx.body = 'hello world'
})

router.get('/mine', async ctx => { 
    let cookievalue = ctx.cookies.get('username')
    console.log(Buffer.from(cookievalue,'base64').toString())
    // console.log(new Buffer(cookievalue,'base64').toString())
    ctx.body = 'welcome back'
})

module.exports = router